#ifndef ASTAR_H
#define ASTAR_H

class Astar{
public:
	Astar(class Location*&, int, int, int, int);
	~Astar();

	std::vector<class Node*> getWay();
	
private:
	// Variables
	class Node* to_;
	class Node* from_;
	class Location* loc_;
	std::vector<class Astarque*> que_;
	std::vector<class Node*> hasChecked_;
	std::vector<class Node*> way_;

        // Methods
	void sortQue();
	void beginSearch();
	void expandNode(class Astarque*);
	double calcEstimated(int, int);
	bool hasBeenChecked(class Node*);
	void addNeighbours(class Astarque*);

};

#endif
